package com.haier.npt.utils;

import java.util.Locale;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.stereotype.Component;


/**
 * @Description:消息管理器
 * @author: lixu
 * @date:   2018年7月13日 上午10:20:23   
 */
@Component
public class MessageHelper {
	
	@Autowired
	private ReloadableResourceBundleMessageSource messageSource ; 
	
	/**
	 * 获取国际化消息
	 * @param code 消息的key
	 * @param args 参数值
	 * @param defaultMessage 默认消息
	 * @param locale 本地化locale
	 * @return
	 */
	public final String getMessage(String code) {
		//线程变量中获取locale 
		 Locale locale = LocaleContextHolder.getLocale() ;  
		 return  messageSource.getMessage(code, null, locale);
	}
	
	/**
	 * 获取国际化消息
	 * @param code 消息的key
	 * @param args 参数值
	 * @param defaultMessage 默认消息
	 * @param locale 本地化locale
	 * @return
	 */
	public final String getMessage(String code, Object[] args, String defaultMessage) {
		//线程变量中获取locale 
		 Locale locale = LocaleContextHolder.getLocale() ;  
		 return  messageSource.getMessage(code, args, locale);
	}

	/**
	 * 获取国际化消息
	 * @param code
	 * @param args
	 * @return
	 */
	public final String getMessage(String code, Object[] args) {
		Locale locale = LocaleContextHolder.getLocale() ;  
		return messageSource.getMessage(code, args, locale);
	}
}
